﻿
#include<stdio.h>

/*给定一个大小为 n 的数组，找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。
你可以假设数组是非空的，并且给定的数组总是存在多数元素。*/
//int main()
//{
//	char arr[] = { 0 };
//	gets_s(arr, 1000);
//	int len = sizeof(arr) / sizeof(arr[0]);
//	int count = 0;
//	for (int i = 0; i < len; i++)
//	{
//		for (int j = 0; j < len; j++)
//		{
//			if (arr[j] == arr[i])
//			{
//				count++;
//				if (count > len / 2)
//				{
//					printf("%c\n", arr[j]);
//				}
//			}
//		}
//	}
//	return 0;
//}


/*自除数 是指可以被它包含的每一位数除尽的数。例如， 128 是一个自除数，因为 128 % 1 == 0 ， 128 % 2 ==
0 ， 128 % 8 == 0 。还有，自除数不允许包含 0 。给定上边界和下边界数字，输出一个列表，列表的元素是边界
（含边界）内所有的自除数。*/

//int main()
//{
//	int left = 0;
//	int right = 0;
//	printf("请输入上下边界>");
//	scanf_s("%d %d", &left,&right);
//	int num = 0;
//	for (num = left; num <= right; num++)
//	{
//		//判断num多少位
//		int count = 0;
//		if (num < 10)
//		{
//			count = 1;
//		}
//		else
//		{
//			while (num != 0)
//			{
//				num = num / 10;
//				count++;
//			}
//		}//num有count 位数
//		for (int m = 0; m < count; m++)
//		{
//			int n = count;
//			if (count == 1)
//			{
//				printf("%d ", num);
//			}
//			else
//			{
//				for ()
//				{
//
//				}
//			}
//		}
//	}
//	
//	return 0;
//}

/*给你一个长度为 n 的整数数组 nums ，其中 n > 1 ，返回输出数组 output ，其中 output[i] 等于 nums 中
除 nums[i] 之外其余各元素的乘积。
提示：题目数据保证数组之中任意元素的全部前缀元素和后缀（甚至是整个数组）的乘积都在 32 位整数范围内。*/

//int main()
//{
//	int nums[] = { 0 };
//	for (int i = 0; i < 4; i++)
//	{
//		int j = 0;
//		scanf_s("%d", &j);
//		nums[i] = j;
//	}
//	int len = sizeof(nums) / sizeof(nums[0]);
//	int num = 1;
//	for (int i = 0; i < len;i++)
//	{
//		num = num * nums[i];
//	}
//	int output[] = { 0 };
//	for (int i = 0; i < len; i++)
//	{
//		output[i] = num / nums[i];
//		printf("%d ", output[i]);
//	}
//	
//	return 0;
//}


/*写一个函数，求两个整数之和，要求在函数体内不得使用+、-、*、/四则运算符号。*/
int Add(int num1, int num2)
{
	while (num2 != 0) {//进位不为0则持续与相加结果进行相加
		int tmp = num1 ^ num2;//得到每位相加不考虑进位的数据
		num2 = (num1 & num2) << 1;//同1的位相加则会进位
		num1 = tmp;
	}
	return num1;
}
int main()
{
	int m, n;
	scanf_s("%d %d", &m, &n);
	int ret = Add(m, n);
	printf("%d", ret);
}